package com.uzai.console.entity.es;

import com.uzai.common.utils.EsIndexName;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

/**
 * 好友请求ES
 * EsIndexName.UZAI_WECHAT_REQ_USER, shards = 3, replicas = 2
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2021-10-18 18:03:47
 */
@Document(indexName = EsIndexName.UZAI_WECHAT_REQ_USER, shards = 3, replicas = 2)
public class EsWechatReqUser {
    @Id
    @Field(type = FieldType.Keyword)
    private String id;

    @Field(type = FieldType.Long)
    private Long merId;

    @ApiModelProperty("设备唯一id")
    @Field(type = FieldType.Long)
    private Long deviceUniqueId;

    @ApiModelProperty("设备类型")
    @Field(type = FieldType.Keyword)
    private Integer deviceType;

    @ApiModelProperty("设备id")
    @Field(type = FieldType.Keyword)
    private String deviceId;

    @ApiModelProperty("注册来源，个人微信、企业微信")
    @Field(type = FieldType.Integer)
    private Integer regSource;

    @ApiModelProperty("昵称")
    @Field(type = FieldType.Text)
    private String nickName;

    @ApiModelProperty("头像")
    @Field(type = FieldType.Text)
    private String headImg;

    @ApiModelProperty("wxid")
    @Field(type = FieldType.Keyword)
    private String wxid;

    @ApiModelProperty("性别 0未知，1男，2女")
    @Field(type = FieldType.Integer)
    private Integer gender;

    @ApiModelProperty("邀请人id")
    @Field(type = FieldType.Long)
    private Long inviterId;

    @ApiModelProperty("邀请人wxid")
    @Field(type = FieldType.Keyword)
    private String inviterWxid;

    @ApiModelProperty("邀请人名称")
    @Field(type = FieldType.Text)
    private String inviterNickname;

    @ApiModelProperty("群wxid")
    @Field(type = FieldType.Keyword)
    private String groupWxid;

    @ApiModelProperty("群名称")
    @Field(type = FieldType.Text)
    private String groupNickname;

    @ApiModelProperty("状态 0新数据，1已通过，2已忽略，3未通过")
    @Field(type = FieldType.Integer)
    private int status;

    @ApiModelProperty("请求时间")
    @Field(type = FieldType.Integer)
    private Integer reqTime;

    @ApiModelProperty("请求人发送的验证消息")
    @Field(type = FieldType.Text)
    private String reqMsg;

    @ApiModelProperty("扩展信息(该字段用于机器人自动接收请求用，不同的端数据不一样)")
    @Field(type = FieldType.Text)
    private String ext;

    @ApiModelProperty("版本号")
    @Field(type = FieldType.Long)
    private Long version = 0L;

    @ApiModelProperty("创建时间")
    @Field(type = FieldType.Integer)
    private int createTime;

    @ApiModelProperty("修改时间")
    @Field(type = FieldType.Integer)
    private int updateTime;

    @ApiModelProperty("忽略好友请求时间")
    @Field(type = FieldType.Integer)
    private int ignoreTime;

    @ApiModelProperty("未通过类型(0-未知原因；1-黑名单；2-达到日限；3-性别拦截；4-夜间不通过; 5-关键词过滤)")
    @Field(type = FieldType.Integer)
    private int notPassType;

    @ApiModelProperty("请求添加好友的来源(17-个人微信卡片添加；14-个人微信群内添加；30个人微信扫描二维码添加；3个人微信搜索微信号添加; 1-企业微信扫描二维码添加)")
    @Field(type = FieldType.Integer)
    private Integer scene;

    @ApiModelProperty("国家")
    @Field(type = FieldType.Keyword)
    private String country;

    @ApiModelProperty("省份")
    @Field(type = FieldType.Keyword)
    private String province;

    @ApiModelProperty("城市")
    @Field(type = FieldType.Keyword)
    private String city;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Long getMerId() {
        return merId;
    }

    public void setMerId(Long merId) {
        this.merId = merId;
    }

    public Long getDeviceUniqueId() {
        return deviceUniqueId;
    }

    public void setDeviceUniqueId(Long deviceUniqueId) {
        this.deviceUniqueId = deviceUniqueId;
    }

    public Integer getDeviceType() {
        return deviceType;
    }

    public void setDeviceType(Integer deviceType) {
        this.deviceType = deviceType;
    }

    public String getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }

    public Integer getRegSource() {
        return regSource;
    }

    public void setRegSource(Integer regSource) {
        this.regSource = regSource;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getHeadImg() {
        return headImg;
    }

    public void setHeadImg(String headImg) {
        this.headImg = headImg;
    }

    public String getWxid() {
        return wxid;
    }

    public void setWxid(String wxid) {
        this.wxid = wxid;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public Long getInviterId() {
        return inviterId;
    }

    public void setInviterId(Long inviterId) {
        this.inviterId = inviterId;
    }

    public String getInviterWxid() {
        return inviterWxid;
    }

    public void setInviterWxid(String inviterWxid) {
        this.inviterWxid = inviterWxid;
    }

    public String getInviterNickname() {
        return inviterNickname;
    }

    public void setInviterNickname(String inviterNickname) {
        this.inviterNickname = inviterNickname;
    }

    public String getGroupWxid() {
        return groupWxid;
    }

    public void setGroupWxid(String groupWxid) {
        this.groupWxid = groupWxid;
    }

    public String getGroupNickname() {
        return groupNickname;
    }

    public void setGroupNickname(String groupNickname) {
        this.groupNickname = groupNickname;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public Integer getReqTime() {
        return reqTime;
    }

    public void setReqTime(Integer reqTime) {
        this.reqTime = reqTime;
    }

    public String getReqMsg() {
        return reqMsg;
    }

    public void setReqMsg(String reqMsg) {
        this.reqMsg = reqMsg;
    }

    public String getExt() {
        return ext;
    }

    public void setExt(String ext) {
        this.ext = ext;
    }

    public Long getVersion() {
        return version;
    }

    public void setVersion(Long version) {
        this.version = version;
    }

    public int getCreateTime() {
        return createTime;
    }

    public void setCreateTime(int createTime) {
        this.createTime = createTime;
    }

    public int getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(int updateTime) {
        this.updateTime = updateTime;
    }

    public int getIgnoreTime() {
        return ignoreTime;
    }

    public void setIgnoreTime(int ignoreTime) {
        this.ignoreTime = ignoreTime;
    }

    public Integer getScene() {
        return scene;
    }

    public void setScene(Integer scene) {
        this.scene = scene;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public int getNotPassType() {
        return notPassType;
    }

    public void setNotPassType(int notPassType) {
        this.notPassType = notPassType;
    }
}